/**
 * 
 */
package co.edu.javeriana.ia.neu;

import java.io.FileInputStream;
import java.util.Properties;

/**
 * <p>
 * Clase de constantes utilizadas en el algoritmo
 * </p>
 * 
 * @author <a href=f.triana@javeriana.edu.co">Alejandro Triana</a>
 * @version 1.0
 */
public class Constants {

	static Properties prop;

	static {

		try {

			String propFile = System.getProperty("conf.file");

			prop = new Properties();

			if (propFile == null) {
				prop.load(new FileInputStream("./data/neu.properties"));
			} else {
				prop.load(new FileInputStream(propFile));
			}

		} catch (Exception e) {
			throw new RuntimeException("Error to read properties file");
		}
	}
	
	/**
	 * <p>
	 * Archivo de descriptores (codones)
	 * </p>
	 */
	public static final String SEQUENCE_TEST_FILE;

	/**
	 * <p>
	 * Archivo de log
	 * </p>
	 */
	public static final String FILE_LOG;
	
	/**
	 * <p>
	 * Sufijo de los archivos de redes neuronales
	 * </p>
	 */
	public static final String NEURALFILE_SUFIX;
	
	/**
	 * <p>
	 * Directorio Base
	 * </p>
	 */
	public static final String BASE_DIR;
	
	/**
	 * <p>
	 * Entrada
	 * </p>
	 */
	public static final int INPUT_SIZE;

	static {

		SEQUENCE_TEST_FILE = (String) prop
				.getProperty("co.edu.javeriana.ia.neu.testfile");
		
		FILE_LOG = (String) prop
				.getProperty("co.edu.javeriana.ia.neu.log");
		
		BASE_DIR = (String) prop
				.getProperty("co.edu.javeriana.ia.neu.basedir");
		
		NEURALFILE_SUFIX = (String) prop
				.getProperty("co.edu.javeriana.ia.neu.neuralsuffix");
		
		INPUT_SIZE = Integer.valueOf(prop
				.getProperty("co.edu.javeriana.ia.neu.intpsize"));
		
	}

}
